home *** CD-ROM | disk | FTP | other *** search
/ World of Video / World of Video.iso / gfxprograms / 3dprograms / rayshade-4.0 / rayfiles / rsdefs / objects / font.rh < prev    next >
Text File  |  1995-02-13  |  37KB  |  1,239 lines

  1. /************************************************************************
  2.  *
  3.  *      font.rh
  4.  *
  5.  *      This is an #include file for the Rayshade Standard Header
  6.  *    Files.  It defines the font superprimitives in the package.
  7.  *
  8.  *    Please do not edit this file, or any of the other files in
  9.  *    this package!  Make additions to these in your own separate
  10.  *    file.  If you think you have something that should be added
  11.  *    permanently, please send it to Larry Coffin and/or David
  12.  *    DeBry (email addresses listed below).  If we include it in
  13.  *    the next release, we'll put your name in the contributor's
  14.  *    list.
  15.  *
  16.  *      Contributors (in alphabetical order):
  17.  *        Paul Chamberlain <tif@austin.ibm.com>
  18.  *          Larry Coffin <lcoffin@clciris.chem.umr.edu>
  19.  *          David DeBry <ddebry@dsd.es.com>
  20.  *        Eric Fontano <fontano@hydra.rose.brandeis.edu>
  21.  *        Dan Peisach <peisach@hydra.rose.brandeis.edu>
  22.  */
  23.  
  24.  
  25. #ifndef RSHF_FONT
  26. #define RSHF_FONT
  27.  
  28.     /* Ratio of height of lower and upper case letters */
  29. #define RSPv0004_ratio    0.7    /* DO NOT SET BELOW 0.6 */
  30. #define RSPv0005_Aratio    (1-RSPv0004_ratio)
  31. #define RSPv0006_gap    (1-2*(1-RSPv0004_ratio))
  32.  
  33. /***********************************************************************
  34.  *    These are ascii character definitions for your convenience!
  35.  */
  36.  
  37. #define RSPfont_33 RSPfont_exclamation
  38. #define RSPfont_34 RSPfont_quotes
  39. #define RSPfont_35 RSPfont_pound
  40. #define RSPfont_36 RSPfont_dollar
  41. #define RSPfont_37 RSPfont_percent
  42. #define RSPfont_38 RSPfont_ampersand
  43. #define RSPfont_39 RSPfont_apostrophe
  44. #define RSPfont_40 RSPfont_leftp
  45. #define RSPfont_41 RSPfont_rightp
  46. #define RSPfont_42 RSPfont_asterisk
  47. #define RSPfont_43 RSPfont_plus
  48. #define RSPfont_44 RSPfont_comma
  49. #define RSPfont_45 RSPfont_minus
  50. #define RSPfont_46 RSPfont_period
  51. #define RSPfont_47 RSPfont_slash
  52. #define RSPfont_48 RSPfont_0
  53. #define RSPfont_49 RSPfont_1
  54. #define RSPfont_50 RSPfont_2
  55. #define RSPfont_51 RSPfont_3
  56. #define RSPfont_52 RSPfont_4
  57. #define RSPfont_53 RSPfont_5
  58. #define RSPfont_54 RSPfont_6
  59. #define RSPfont_55 RSPfont_7
  60. #define RSPfont_56 RSPfont_8
  61. #define RSPfont_57 RSPfont_9
  62. #define RSPfont_58 RSPfont_colon
  63. #define RSPfont_59 RSPfont_semicolon
  64. #define RSPfont_60 RSPfont_less
  65. #define RSPfont_61 RSPfont_equals
  66. #define RSPfont_62 RSPfont_greater
  67. #define RSPfont_63 RSPfont_question
  68. #define RSPfont_64 RSPfont_at
  69. #define RSPfont_65 RSPfont_A
  70. #define RSPfont_66 RSPfont_B
  71. #define RSPfont_67 RSPfont_C
  72. #define RSPfont_68 RSPfont_D
  73. #define RSPfont_69 RSPfont_E
  74. #define RSPfont_70 RSPfont_F
  75. #define RSPfont_71 RSPfont_G
  76. #define RSPfont_72 RSPfont_H
  77. #define RSPfont_73 RSPfont_I
  78. #define RSPfont_74 RSPfont_J
  79. #define RSPfont_75 RSPfont_K
  80. #define RSPfont_76 RSPfont_L
  81. #define RSPfont_77 RSPfont_M
  82. #define RSPfont_78 RSPfont_N
  83. #define RSPfont_79 RSPfont_O
  84. #define RSPfont_80 RSPfont_P
  85. #define RSPfont_81 RSPfont_Q
  86. #define RSPfont_82 RSPfont_R
  87. #define RSPfont_83 RSPfont_S
  88. #define RSPfont_84 RSPfont_T
  89. #define RSPfont_85 RSPfont_U
  90. #define RSPfont_86 RSPfont_V
  91. #define RSPfont_87 RSPfont_W
  92. #define RSPfont_88 RSPfont_X
  93. #define RSPfont_89 RSPfont_Y
  94. #define RSPfont_90 RSPfont_Z
  95. #define RSPfont_91 RSPfont_leftb
  96. #define RSPfont_92 RSPfont_backslash
  97. #define RSPfont_93 RSPfont_rightb
  98. #define RSPfont_94 RSPfont_carat
  99. #define RSPfont_95 RSPfont_underscore
  100. #define RSPfont_96 RSPfont_backapostrophe
  101. #define RSPfont_97 RSPfont_a
  102. #define RSPfont_98 RSPfont_b
  103. #define RSPfont_99 RSPfont_c
  104. #define RSPfont_100 RSPfont_d
  105. #define RSPfont_101 RSPfont_e
  106. #define RSPfont_102 RSPfont_f
  107. #define RSPfont_103 RSPfont_g
  108. #define RSPfont_104 RSPfont_h
  109. #define RSPfont_105 RSPfont_i
  110. #define RSPfont_106 RSPfont_j
  111. #define RSPfont_107 RSPfont_k
  112. #define RSPfont_108 RSPfont_l
  113. #define RSPfont_109 RSPfont_m
  114. #define RSPfont_110 RSPfont_n
  115. #define RSPfont_111 RSPfont_o
  116. #define RSPfont_112 RSPfont_p
  117. #define RSPfont_113 RSPfont_q
  118. #define RSPfont_114 RSPfont_r
  119. #define RSPfont_115 RSPfont_s
  120. #define RSPfont_116 RSPfont_t
  121. #define RSPfont_117 RSPfont_u
  122. #define RSPfont_118 RSPfont_v
  123. #define RSPfont_119 RSPfont_w
  124. #define RSPfont_120 RSPfont_x
  125. #define RSPfont_121 RSPfont_y
  126. #define RSPfont_122 RSPfont_z
  127. #define RSPfont_123 RSPfont_left_brace
  128. #define RSPfont_124 RSPfont_pipe
  129. #define RSPfont_125 RSPfont_right_brace
  130. #define RSPfont_126 RSPfont_tilde
  131.  
  132.  
  133. #define toparc(t)                            \
  134. intersect                                \
  135.     torus    0.5 (t)    0.5 0 1.5    0 1 0                \
  136.     box    -1 -1 1.5    2 1 3                        \
  137. end
  138.  
  139. #define botarc(t)                            \
  140. intersect                                \
  141.     torus    0.5 (t)    0.5 0 0.5    0 1 0                \
  142.     box    -1 -1 -1    2 1 0.5                        \
  143. end
  144.  
  145. #define upperquarter(t)                            \
  146. intersect                                \
  147.     torus    0.5 (t)    0.5 0 1.5    0 1 0                \
  148.     box    0.5 -1 1.5    2 1 3                        \
  149. end
  150.  
  151. #define upperleftquarter(t)                        \
  152. intersect                                \
  153.     torus    0.5 (t)    0.5 0 1.5    0 1 0                \
  154.     box    0.5 -1 1.5    -2 1 3                        \
  155. end
  156.  
  157. #define upperarc(t)                            \
  158. intersect                                \
  159.     torus    0.5 (t)    0.5 0 1.5    0 1 0                \
  160.     box    0.5 -1 0    2 1 3                        \
  161. end
  162.  
  163. #define lowerquarter(t)                            \
  164. intersect                                \
  165.     torus    0.5 (t)    0.5 0 0.5    0 1 0                \
  166.     box    0.5 -1 -1    2 1 0.5                        \
  167. end
  168.  
  169. #define lowerleftquarter(t)                        \
  170. intersect                                \
  171.     torus    0.5 (t)    0.5 0 0.5    0 1 0                \
  172.     box    -1 -1 -1    0.5 1 0.5                    \
  173. end
  174.  
  175. #define lowerarc(t)                            \
  176. intersect                                \
  177.     torus    0.5 (t)    0.5 0 0.5    0 1 0                \
  178.     box    0.5 -1 -1    2 1 2                        \
  179. end
  180.  
  181. #define corner(t)                            \
  182. intersect                                \
  183.     torus    (t) (t)    0 0 0    0 1 0                    \
  184.     box    0 -1 0    1 1 1                        \
  185. end
  186.  
  187. #define upperleft(t)    corner(t)                    \
  188.     rotate    0 1 0 -90    translate    (t) 0 (2-(t))
  189.  
  190. #define lowerleft(t)    corner(t)                    \
  191.     rotate    0 1 0 180    translate    (t) 0 (t)
  192. /*
  193.  * A cylinder with a sphere on each end.
  194.  */
  195. #define cylsphere(len,t)                        \
  196. list                                    \
  197.     cylinder    (t)    0 0 0    0 0 (len)                \
  198.     sphere    (t)    0 0 0                        \
  199.     sphere    (t)    0 0 (len)                    \
  200. end
  201.  
  202. /*
  203.  * A cylinder with a sphere on one end and a disc on the other.
  204.  */
  205. #define cyldisc(len,t)                            \
  206. list                                    \
  207.     cylinder    (t)    0 0 0    0 0 (len)                \
  208.     sphere    (t)    0 0 0                        \
  209. end
  210.  
  211.  
  212. /***********/
  213. #define RSPfont_exclamation(prefix,t)                    \
  214. prefix list                                \
  215.     sphere    (t)    0.5 0 0                        \
  216.     cylsphere(1.5,t)    translate 0.5 0 0.5                \
  217. end
  218.  
  219. #define RSPfont_quotes(prefix,t)                    \
  220. prefix list                                \
  221.     cylsphere(0.5,t)    translate 0.3 0 1.5                \
  222.     cylsphere(0.5,t)    translate 0.7 0 1.5                \
  223. end
  224.  
  225. #define RSPfont_pound(prefix,t)                        \
  226. prefix list                                \
  227.     cylinder    (t)    0.15 0 0     0.35 0 2                \
  228.     cylinder    (t)    0.65 0 0     0.85 0 2                \
  229.     sphere     (t)    0.15 0 0                    \
  230.     sphere     (t)    0.35 0 2                    \
  231.     sphere    (t)    0.65 0 0                        \
  232.     sphere    (t)    0.85 0 2                        \
  233.     cylinder    (t)    0 0 0.667    1 0 0.667                \
  234.     cylinder    (t)    0 0 1.333    1 0 1.333                \
  235.     sphere    (t)    0 0 0.667                    \
  236.     sphere     (t)    1 0 0.667                    \
  237.     sphere    (t)    0 0 1.333                    \
  238.     sphere    (t)    1 0 1.333                    \
  239. end
  240.  
  241. #define RSPfont_dollar(prefix,t)                    \
  242. prefix list                                \
  243.   intersect                                \
  244.     torus (RSPv0004_ratio/2) (t)                    \
  245.     (RSPv0004_ratio/2) 0 (1.5*RSPv0004_ratio)            \
  246.     0 1 0                                \
  247.     box -1 -1 (RSPv0004_ratio-(t)) (RSPv0004_ratio/2) 1 3        \
  248.   end translate 0 0 (RSPv0005_Aratio)                    \
  249.   intersect                                \
  250.     torus (RSPv0004_ratio/2) (t)                    \
  251.     (1-RSPv0004_ratio/2) 0 (1.5*RSPv0004_ratio)            \
  252.     0 1 0                                \
  253.     box (1-RSPv0004_ratio/2) -1 (1.5*RSPv0004_ratio) 2 1 3        \
  254.   end translate 0 0 (RSPv0005_Aratio)                    \
  255.   intersect                                \
  256.     torus (RSPv0004_ratio/2) (t)                    \
  257.     (RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  258.     0 1 0                                \
  259.     box -1 -1 (.5*RSPv0004_ratio) (RSPv0004_ratio/2) 1 -1        \
  260.   end translate 0 0 (RSPv0005_Aratio)                    \
  261.   intersect                                \
  262.     torus (RSPv0004_ratio/2) (t)                    \
  263.     (1-RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  264.     0 1 0                                \
  265.     box (1-RSPv0004_ratio/2) -1 (RSPv0004_ratio+(t)) 2 1 -1        \
  266.   end translate 0 0 (RSPv0005_Aratio)                    \
  267.   cylinder    (t)                            \
  268.     (RSPv0004_ratio/2) 0 (RSPv0005_Aratio)                \
  269.     (1-RSPv0004_ratio/2) 0 (RSPv0005_Aratio)            \
  270.   cylinder    (t)                            \
  271.     (RSPv0004_ratio/2) 0 1                        \
  272.     (1-RSPv0004_ratio/2) 0 1                    \
  273.   cylinder    (t)                            \
  274.     (RSPv0004_ratio/2) 0 (1+RSPv0004_ratio)                \
  275.     (1-RSPv0004_ratio/2) 0 (1+RSPv0004_ratio)            \
  276.   sphere    (t)    0 0 (RSPv0004_ratio/2+RSPv0005_Aratio)        \
  277.   sphere    (t)    1 0 (1+0.5*RSPv0004_ratio)                \
  278.   cylsphere(2,t)     translate 0.333 0 0                \
  279.   cylsphere(2,t)    translate 0.667 0 0                    \
  280. end
  281.  
  282. #define RSPfont_percent(prefix,t)                    \
  283. prefix list                                \
  284.     torus    0.25    (t)    0.25 0 1.75     0 1 0            \
  285.     torus    0.25    (t)    0.75 0 0.25    0 1 0            \
  286.     cylinder    (t)    0 0 0     1 0 2                    \
  287.     sphere    (t)    0 0 0                        \
  288.     sphere    (t)    1 0 2                        \
  289. end
  290.  
  291. #define RSPfont_ampersand(prefix,t)                    \
  292. prefix list                                \
  293.     sphere    (t)    0.5 0 0                        \
  294. end
  295.  
  296. #define RSPfont_apostrophe(prefix,t)                    \
  297. prefix list                                \
  298.     cylsphere(0.5,t)    translate 0.5 0 1.5                \
  299. end
  300.  
  301. #define RSPfont_leftp(prefix,t)                        \
  302. prefix list                                \
  303.     intersect                                \
  304.     torus    .5    (t)    0.75 0 1.5     0 1 0            \
  305.     box         -1 -1 1.5     .75 1 3                \
  306.     end                                    \
  307.     intersect                                \
  308.     torus    .5    (t)    .75 0 .5    0 1 0                \
  309.     box        -1 -1 -1    .75 1 .5                \
  310.     end                                    \
  311.     cylinder    (t)    0.25 0 .5    0.25 0 1.5                \
  312.     sphere    (t)    .75 0 0                        \
  313.     sphere    (t)    .75 0 2                        \
  314. end
  315.  
  316. #define RSPfont_rightp(prefix,t)                    \
  317. prefix list                                \
  318.     intersect                                \
  319.     torus    .5    (t)    0.25 0 1.5     0 1 0            \
  320.     box         .25 -1 1.5     2 1 3                \
  321.     end                                    \
  322.     intersect                                \
  323.     torus    .5    (t)    .25 0 .5    0 1 0                \
  324.     box        .25 -1 -1    2 1 .5                    \
  325.     end                                    \
  326.     cylinder    (t)    0.75 0 .5    0.75 0 1.5            \
  327.     sphere    (t)    .25 0 0                        \
  328.     sphere    (t)    .25 0 2                        \
  329. end
  330.  
  331. #define RSPfont_asterisk(prefix,t)                    \
  332. prefix list                                \
  333.     cylinder    (t)    .2 0 .4    .8 0 1.6                \
  334.     cylinder    (t)    .2 0 1.6    .8 0 .4                \
  335.     cylinder    (t)    0 0 1    1 0 1                    \
  336.     sphere    (t)    .2 0 .4                        \
  337.     sphere    (t)    .8 0 .4                        \
  338.     sphere    (t)    1 0 1                        \
  339.     sphere    (t)    .8 0 1.6                        \
  340.     sphere    (t)    .2 0 1.6                        \
  341.     sphere    (t)    0 0 1                        \
  342. end
  343.  
  344. #define RSPfont_plus(prefix,t)                        \
  345. prefix list                                \
  346.     cylsphere(1,t) translate 0.5 0 0.5                    \
  347.     cylinder    (t)    0 0 1     1 0 1                    \
  348.     sphere    (t)    0 0 1                        \
  349.     sphere    (t)    1 0 1                        \
  350. end
  351.  
  352. #define RSPfont_comma(prefix,t)                        \
  353. prefix list                                \
  354.     cylinder    (t)    0.2 0 0.1     0 0 -0.3                \
  355.     sphere    (t)    0.2 0 0.1                    \
  356.     sphere    (t)    0 0 -0.3                        \
  357. end
  358.  
  359. #define RSPfont_minus(prefix,t)                        \
  360. prefix list                                \
  361.     cylinder    (t)    0 0 1     1 0 1                    \
  362.     sphere    (t)    0 0 1                        \
  363.     sphere    (t)    1 0 1                        \
  364. end
  365.  
  366. #define RSPfont_period(prefix,t)                    \
  367. prefix list                                \
  368.     sphere     (t)     0.5 0 0                    \
  369. end
  370.  
  371. #define RSPfont_slash(prefix,t)                        \
  372. prefix list                                \
  373.     cylinder    (t)    0 0 0     1 0 2                    \
  374.     sphere    (t)    0 0 0                        \
  375.     sphere    (t)    1 0 2                        \
  376. end
  377.  
  378. #define RSPfont_0(prefix,t)                        \
  379. prefix list                                \
  380.     toparc(t)                                \
  381.     cylinder    (t)    0 0 0.5    0 0 1.5                    \
  382.     botarc(t)                                \
  383.     cylinder    (t)    1 0 0.5    1 0 1.5                    \
  384.     cylinder    (t)    0 0 0     1 0 2                    \
  385.     sphere    (t)    1 0 2                        \
  386.     sphere    (t)    0 0 0                        \
  387. end
  388.  
  389. #define RSPfont_1(prefix,t)                        \
  390. prefix list                                \
  391.     cylsphere(2,t)    translate    0.5 0 0                    \
  392.     cylinder    (t)    0.5 0 2    0.3 0 1.7                \
  393.     sphere    (t)     0.3 0 1.8                    \
  394. end
  395.  
  396. #define RSPfont_2(prefix,t)                        \
  397. prefix list                                \
  398.     sphere    (t)    0 0 1.5                        \
  399.     toparc(t)                                \
  400.     cylsphere(0.125,t)    translate    1 0 1.375            \
  401.     lowerquarter(t)    translate    0 0 0.875                \
  402.     upperleftquarter(t)    translate    0 0 -1.125            \
  403.     cylsphere(0.375,t)    translate     0 0 0                \
  404.     cylinder    (t)    0 0 0     1 0 0                    \
  405.     sphere    (t)    1 0 0                        \
  406. end
  407.  
  408. #define RSPfont_3(prefix,t)                        \
  409. prefix list                                \
  410.     upperarc(t)                                \
  411.     lowerarc(t)                                \
  412.     toparc(t)                                \
  413.     botarc(t)                                \
  414.     sphere    (t)    0 0 1.5                        \
  415.     sphere    (t)    0 0 0.5                        \
  416.     sphere    (t)    0.5 0 1                        \
  417. end
  418.  
  419. #define RSPfont_4(prefix,t)                        \
  420. prefix list                                \
  421.     cylsphere(2,t)    translate    0.8 0 0                \
  422.     cylinder    (t)    0.8 0 2     0 0 .7                \
  423.     sphere     (t)    0 0 0.7                        \
  424.     cylinder    (t)    0 0 0.7    1 0 0.7                    \
  425.     sphere    (t)    1 0 0.7                        \
  426. end
  427.  
  428. #define RSPfont_5(prefix,t)                        \
  429. prefix list                                \
  430.     botarc(t)                                \
  431.     sphere    (t)    0 0 0.5                        \
  432.     cylinder    (t)    1 0 0.5     1 0 1                    \
  433.     toparc(t)                                \
  434.         scale 1 1 .75 translate 0 0 -0.125                \
  435.     sphere    (t)    0 0 0                        \
  436.         scale 1 1 0.75 translate 0 0 1                \
  437.     cylinder     (t)    0 0 1    0 0 2                    \
  438.     sphere    (t)    0 0 2                        \
  439.     sphere    (t)     1 0 2                        \
  440.     cylinder    (t)    0 0 2    1 0 2                    \
  441. end
  442.  
  443. #define RSPfont_6(prefix,t)                        \
  444. prefix list                                \
  445.     toparc(t)                                \
  446.     botarc(t)                                \
  447.     toparc(t) translate 0 0 -0.875                    \
  448.     cylinder    (t)    1 0 0.5    1 0 0.625                \
  449.     cylinder    (t)    0 0 0.5     0 0 1.5                \
  450.     sphere     (t)    1 0 1.5                        \
  451. end
  452.  
  453. #define RSPfont_7(prefix,t)                        \
  454. prefix list                                \
  455.     sphere     (t)    0 0 2                        \
  456.     cylinder    (t)    0 0 2      1 0 2                    \
  457.     sphere    (t)    1 0 2                        \
  458.     cylinder    (t)    1 0 2    0.25 0 0                \
  459.     sphere    (t)    0.25 0 0                    \
  460. end
  461.  
  462. #define RSPfont_8(prefix,t)                        \
  463. prefix list                                \
  464.     toparc(t)                                \
  465.     toparc(t) translate 0 0 -1                        \
  466.     botarc(t)                                \
  467.     botarc(t) translate 0 0 1                        \
  468. end
  469.  
  470. #define RSPfont_9(prefix,t)                        \
  471. prefix list                                \
  472.     toparc(t)                                \
  473.     botarc(t)                                \
  474.     botarc(t) translate 0 0 0.875                    \
  475.     cylinder    (t)    1 0 1.5    1 0 0.5                    \
  476.     cylinder    (t)    0 0 1.5     0 0 1.375                \
  477.     sphere     (t)    0 0 0.5                        \
  478. end
  479.  
  480. #define RSPfont_colon(prefix,t)                        \
  481. prefix list                                \
  482.     sphere     (t)    0.5 0 1.5                    \
  483.     sphere    (t)    0.5 0 0.5                    \
  484. end
  485.  
  486. #define RSPfont_semicolon(prefix,t)                    \
  487. prefix list                                \
  488.     sphere    (t)     0.5 0 1.5                    \
  489.     cylinder    (t)    0.5 0 0.5     0.3 0 0.1                \
  490.     sphere    (t)    0.5 0 0.5                    \
  491.     sphere    (t)    0.3 0 0.1                    \
  492. end
  493.  
  494. #define RSPfont_less(prefix,t)                        \
  495. prefix list                                \
  496.     sphere    (t)    0.75 0 1.5                    \
  497.     cylinder    (t)    0.25 0 1     0.75 0 1.5                \
  498.     sphere    (t)    0.25 0 1                        \
  499.     cylinder     (t)    0.25 0 1     0.75 0 0.5                \
  500.     sphere    (t)    0.75 0 0.5                    \
  501. end
  502.  
  503. #define RSPfont_equals(prefix,t)                    \
  504. prefix list                                \
  505.     sphere    (t)    0.1 0 0.75                    \
  506.     sphere    (t)    .9 0 0.75                    \
  507.     cylinder    (t)    0.1 0 0.75    0.9 0 0.75                \
  508.     cylinder    (t)    0.1 0 1.25     0.9 0 1.25            \
  509.     sphere    (t)    0.1 0 1.25                    \
  510.     sphere    (t)    0.9 0 1.25                    \
  511. end
  512.  
  513. #define RSPfont_greater(prefix,t)                    \
  514. prefix list                                \
  515.     sphere    (t)    0.25 0 1.5                    \
  516.     cylinder    (t)    0.75 0 1     0.25 0 1.5                \
  517.     sphere    (t)    0.75 0 1                        \
  518.     cylinder     (t)    0.75 0 1     0.25 0 0.5                \
  519.     sphere    (t)    0.25 0 0.5                    \
  520. end
  521.  
  522. #define RSPfont_question(prefix,t)                    \
  523. prefix list                                \
  524.     sphere    (t)    0 0 1.5                        \
  525.     toparc(t)                                \
  526.     intersect                                \
  527.     torus    0.5 (t)    0.5 0 1.5     0 1 0                \
  528.     box        0.5 -1 0     2 1 1.5                \
  529.     end                                    \
  530.      intersect                                \
  531.     torus 0.25 (t)    0.5 0 0.75    0 1 0                \
  532.     box        0 -1 0.75    0.5 1 2                \
  533.     end                                    \
  534.     cylinder    (t)    0.25 0 .75    0.25 0 0.5            \
  535.     sphere    (t)    0.25 0 0.5                    \
  536.     sphere    (t)    0.25 0 0                        \
  537. end
  538.  
  539. #define RSPfont_at(prefix,t)                        \
  540. prefix list                                \
  541.     sphere    (t)    0.5 0 0                        \
  542. end
  543.  
  544. #define RSPfont_A(prefix,t)                        \
  545. prefix list                                \
  546.     cylinder    (t)    0 0 0    0.5 0 2                    \
  547.     cylinder    (t)    1 0 0    0.5 0 2                    \
  548.     cylinder    (t)    (0.5-0.4*0.5) 0 0.8 (0.5+0.4*0.5) 0 0.8        \
  549.     sphere    (t)    0.5 0 2                        \
  550.     sphere    (t)    0 0 0                        \
  551.     sphere    (t)    1 0 0                        \
  552. end
  553.  
  554. #define RSPfont_B(prefix,t)                        \
  555. prefix list                                \
  556.     cylinder    (t)    0 0 0    0 0 2                    \
  557.     cylinder    (t)    0 0 2    0.5 0 2                    \
  558.     cylinder    (t)    0 0 1    0.5 0 1                    \
  559.     cylinder    (t)    0 0 0    0.5 0 0                    \
  560.     upperarc(t)                                \
  561.     lowerarc(t)                                \
  562.     sphere    (t)    0 0 0                        \
  563.     sphere    (t)    0 0 2                        \
  564. end
  565.  
  566. #define RSPfont_C(prefix,t)                        \
  567. prefix list                                \
  568.     toparc(t)                                \
  569.     cylinder    (t)    0 0 0.5    0 0 1.5                    \
  570.     botarc(t)                                \
  571.     sphere    (t)    1 0 1.5                        \
  572.     sphere    (t)    1 0 0.5                        \
  573. end
  574.  
  575. #define RSPfont_D(prefix,t)                        \
  576. prefix list                                \
  577.     cylinder    (t)    0 0 0    0 0 2                    \
  578.     cylinder    (t)    0 0 2    0.5 0 2                    \
  579.     cylinder    (t)    1 0 0.5    1 0 1.5                    \
  580.     cylinder    (t)    0 0 0    0.5 0 0                    \
  581.     upperquarter(t)                            \
  582.     lowerquarter(t)                            \
  583.     sphere    (t)    0 0 0                        \
  584.     sphere    (t)    0 0 2                        \
  585. end
  586.  
  587. #define RSPfont_E(prefix,t)                        \
  588. prefix list                                \
  589.     cylinder    (t)    0 0 0    0 0 2                    \
  590.     cylinder    (t)    0 0 0    1 0 0                    \
  591.     cylinder    (t)    0 0 2    1 0 2                    \
  592.     cylinder    (t)    0 0 1    0.75 0 1                \
  593.     sphere    (t)    0 0 0                        \
  594.     sphere    (t)    0 0 2                        \
  595.     sphere    (t)    1 0 0                        \
  596.     sphere    (t)    1 0 2                        \
  597.     sphere    (t)    0.75 0 1                        \
  598. end
  599.  
  600. #define RSPfont_F(prefix,t)                        \
  601. prefix list                                \
  602.     cylinder    (t)    0 0 0    0 0 2                    \
  603.     cylinder    (t)    0 0 2    1 0 2                    \
  604.     cylinder    (t)    0 0 1    0.75 0 1                \
  605.     sphere    (t)    0 0 0                        \
  606.     sphere    (t)    0 0 2                        \
  607.     sphere    (t)    1 0 2                        \
  608.     sphere    (t)    0.75 0 1                        \
  609. end
  610.  
  611. #define RSPfont_G(prefix,t)                        \
  612. prefix list                                \
  613.     toparc(t)                                \
  614.     cylinder    (t)    0 0 0.5    0 0 1.5                    \
  615.     botarc(t)                                \
  616.     cylinder    (t)    1 0 0.8    1 0 0.5                    \
  617.     sphere    (t)    1 0 1.5                        \
  618.     cylinder    (t)    0.6 0 0.8    1 0 0.8                \
  619.     sphere    (t)    1 0 0.8                        \
  620.     sphere    (t)    0.6 0 0.8                    \
  621. end
  622.  
  623. #define RSPfont_H(prefix,t)                        \
  624. prefix list                                \
  625.     cylsphere(2,t)    translate    0 0 0                    \
  626.     cylsphere(2,t)    translate    1 0 0                    \
  627.     cylinder    (t)    0 0 1    1 0 1                    \
  628. end
  629.  
  630. #define RSPfont_I(prefix,t)                        \
  631. prefix list                                \
  632.     cylinder    THICK    0.5 0 0     0.5 0 2            \
  633.     cylinder    THICK    0 0 0         1 0 0             \
  634.     cylinder    THICK    0 0 2        1 0 2            \
  635.     sphere        THICK     0 0 0                     \
  636.     sphere        THICK    1 0 0                     \
  637.     sphere         THICK    0 0 2                    \
  638.     sphere         THICK    1 0 2                    \
  639. end
  640.  
  641. #define RSPfont_J(prefix,t)                        \
  642. prefix list                                \
  643.     cyldisc(1.5,t)    rotate    0 1 0 180    translate    1 0 2        \
  644.     botarc(t)                                \
  645.     sphere    (t)    0 0 0.5                        \
  646. end
  647.  
  648. #define RSPfont_K(prefix,t)                        \
  649. prefix list                                \
  650.     cylinder    (t)    0 0 0    0 0 2                    \
  651.     cylinder    (t)    1 0 2    0 0 1                    \
  652.     cylinder    (t)    1 0 0    0.5 0 1.5                \
  653.     sphere    (t)    0 0 0                        \
  654.     sphere    (t)    0 0 2                        \
  655.     sphere    (t)    1 0 2                        \
  656.     sphere    (t)    1 0 0                        \
  657. end
  658.  
  659. #define RSPfont_L(prefix,t)                        \
  660. prefix list                                \
  661.     cylinder    (t)    0 0 0    0 0 2                    \
  662.     cylinder    (t)    0 0 0    1 0 0                    \
  663.     sphere    (t)    0 0 0                        \
  664.     sphere    (t)    0 0 2                        \
  665.     sphere    (t)    1 0 0                        \
  666. end
  667.  
  668. #define RSPfont_M(prefix,t)                        \
  669. prefix list                                \
  670.     cylsphere(2,t)    translate    0 0 0                    \
  671.     cylsphere(2,t)    translate    1 0 0                    \
  672.     cylinder    (t)    0 0 2    0.5 0 1                    \
  673.     cylinder    (t)    1 0 2    0.5 0 1                    \
  674.     sphere    (t)    0.5 0 1                        \
  675. end
  676.  
  677. #define RSPfont_N(prefix,t)                        \
  678. prefix list                                \
  679.     cylsphere(2,t)    translate    0 0 0                    \
  680.     cylsphere(2,t)    translate    1 0 0                    \
  681.     cylinder    (t)    0 0 2    1 0 0                    \
  682. end
  683.  
  684. #define RSPfont_O(prefix,t)                        \
  685. prefix list                                \
  686.     toparc(t)                                \
  687.     cylinder    (t)    0 0 0.5    0 0 1.5                    \
  688.     botarc(t)                                \
  689.     cylinder    (t)    1 0 0.5    1 0 1.5                    \
  690. end
  691.  
  692. #define RSPfont_P(prefix,t)                        \
  693. prefix list                                \
  694.     cylinder    (t)    0 0 0    0 0 2                    \
  695.     cylinder    (t)    0 0 2    0.5 0 2                    \
  696.     cylinder    (t)    0 0 1    0.5 0 1                    \
  697.     upperarc(t)                                \
  698.     sphere    (t)    0 0 0                        \
  699.     sphere    (t)    0 0 2                        \
  700. end
  701.  
  702. #define RSPfont_Q(prefix,t)                        \
  703. prefix list                                \
  704.     toparc(t)                                \
  705.     cylinder    (t)    0 0 0.5    0 0 1.5                    \
  706.     botarc(t)                                \
  707.     cylinder    (t)    1 0 0.5    1 0 1.5                    \
  708.     cylinder    (t)    1 0 0    0.6 0 0.8                \
  709.     sphere    (t)    1 0 0                        \
  710.     sphere    (t)    0.6 0 0.8                            \
  711. end
  712.  
  713. #define RSPfont_R(prefix,t)                        \
  714. prefix list                                \
  715.     cylinder    (t)    0 0 0    0 0 2                    \
  716.     cylinder    (t)    0 0 2    0.5 0 2                    \
  717.     cylinder    (t)    0 0 1    0.5 0 1                    \
  718.     upperarc(t)                                \
  719.     sphere    (t)    0 0 0                        \
  720.     sphere    (t)    0 0 2                        \
  721.     upperarc(t)                                \
  722.     upperquarter(t)    translate    0 0 -1                \
  723.     cyldisc(0.5,t)    translate    1 0 0                \
  724. end
  725.  
  726. #define RSPfont_S(prefix,t)                        \
  727. prefix list                                \
  728.     sphere    (t)    1 0 1.5                        \
  729.     toparc(t)                                \
  730.     lowerleftquarter(t)    translate    0 0 1                \
  731.     upperquarter(t)    translate    0 0 -1                \
  732.     botarc(t)                                \
  733.     sphere    (t)    0 0 0.5                        \
  734. end
  735.  
  736. #define RSPfont_T(prefix,t)                        \
  737. prefix list                                \
  738.     cyldisc(2,t)    translate    0.5 0 0                    \
  739.     cylsphere(1,t)                            \
  740.     rotate    0 1 0 90    translate    0 0 2            \
  741. end
  742.  
  743. #define RSPfont_U(prefix,t)                        \
  744. prefix list                                \
  745.     cylinder    (t)    0 0 0.5    0 0 2                    \
  746.     botarc(t)                                \
  747.     cylinder    (t)    1 0 0.5    1 0 2                    \
  748.     sphere    (t)    0 0 2                        \
  749.     sphere    (t)    1 0 2                        \
  750. end
  751.  
  752. #define RSPfont_V(prefix,t)                        \
  753. prefix list                                \
  754.     cylinder    (t)    0.5 0 0    0 0 2                    \
  755.     cylinder    (t)    0.5 0 0    1 0 2                    \
  756.     sphere    (t)    0 0 2                        \
  757.     sphere    (t)    1 0 2                        \
  758.     sphere    (t)    0.5 0 0                        \
  759. end
  760.  
  761. #define RSPfont_W(prefix,t)                        \
  762. prefix list                                \
  763.     sphere    (t)     0 0 2                        \
  764.     cylinder    (t)    0 0 2    0.15 0 0                \
  765.     sphere    (t)    0.15 0 0                        \
  766.     cylinder    (t)    0.15 0 0    0.5 0 1                \
  767.     sphere    (t)    0.5 0 1                        \
  768.     cylinder    (t)    .85 0 0    0.5 0 1                    \
  769.     sphere    (t)    .85 0 0                        \
  770.     cylinder    (t)    .85 0 0     1 0 2                \
  771.     sphere     (t)    1 0 2                        \
  772. end
  773.  
  774. #define RSPfont_X(prefix,t)                        \
  775. prefix list                                \
  776.     cylinder    (t)    1 0 0    0 0 2                    \
  777.     cylinder    (t)    0 0 0    1 0 2                    \
  778.     sphere    (t)    0 0 2                        \
  779.     sphere    (t)    1 0 2                        \
  780.     sphere    (t)    1 0 0                        \
  781.     sphere    (t)    0 0 0                        \
  782. end
  783.  
  784. #define RSPfont_Y(prefix,t)                        \
  785. prefix list                                \
  786.     cylinder    (t)    0 0 2    0.5 0 1                    \
  787.     cylinder    (t)    1 0 2    0.5 0 1                    \
  788.     sphere    (t)    0 0 2                        \
  789.     sphere    (t)    1 0 2                        \
  790.     cylsphere(1,t)    translate    0.5 0 0                    \
  791. end
  792.  
  793. #define RSPfont_Z(prefix,t)                        \
  794. prefix list                                \
  795.     cylinder    (t)    0 0 2    1 0 2                    \
  796.     cylinder    (t)    0 0 0    1 0 2                    \
  797.     cylinder    (t)    0 0 0    1 0 0                    \
  798.     sphere    (t)    0 0 2                        \
  799.     sphere    (t)    1 0 2                        \
  800.     sphere    (t)    1 0 0                        \
  801.     sphere    (t)    0 0 0                        \
  802. end
  803.  
  804. #define RSPfont_leftb(prefix,t)                        \
  805. prefix list                                \
  806.     cylsphere(2,t)    translate     0.25 0 0                \
  807.     cylinder    (t)    0.25 0 0     0.75 0 0                \
  808.     sphere    (t)    0.75 0 0                    \
  809.     cylinder    (t)    0.25 0 2     0.75 0 2                \
  810.     sphere    (t)    0.75 0 2                    \
  811. end
  812.  
  813. #define RSPfont_backslash(prefix,t)                    \
  814. prefix list                                \
  815.     cylinder    (t)    1 0 0     0 0 2                    \
  816.     sphere    (t)    1 0 0                        \
  817.     sphere    (t)    0 0 2                        \
  818. end
  819.  
  820. #define RSPfont_rightb(prefix,t)                    \
  821. prefix list                                \
  822.     cylsphere(2,t)    translate     0.75 0 0                \
  823.     cylinder    (t)    0.25 0 0     0.75 0 0                \
  824.     sphere    (t)    0.25 0 0                    \
  825.     cylinder    (t)    0.25 0 2     0.75 0 2                \
  826.     sphere    (t)    0.25 0 2                    \
  827. end
  828.  
  829. #define RSPfont_carat(prefix,t)                        \
  830. prefix list                                \
  831.     cylinder    (t)    .5 0 2    0 0 1                    \
  832.     cylinder    (t)    .5 0 2     1 0 1                    \
  833.     sphere    (t)    .5 0 2                        \
  834.     sphere    (t)    0 0 1                        \
  835.     sphere    (t)    1 0 1                        \
  836. end
  837.  
  838. #define RSPfont_underscore(prefix,t)                    \
  839. prefix list                                \
  840.     cylinder    (t)    0 0 (-2*(t))     1 0 (-2*(t))            \
  841.     sphere    (t)    0 0 (-2*(t))                    \
  842.     sphere    (t)    1 0 (-2*(t))                    \
  843. end
  844.  
  845. #define RSPfont_backapostrophe(prefix,t)                \
  846. prefix list                                \
  847.     cylinder    (t)    0.6 0 1.6     0.4 0 2                \
  848.     sphere    (t)    0.6 0 1.6                    \
  849.     sphere    (t)    0.4 0 2                        \
  850. end
  851.  
  852. #define RSPfont_a(prefix,t)                        \
  853. prefix list                                \
  854.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  855.     botarc(t)                                \
  856.     cylinder     (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  857.     cylsphere(2*RSPv0004_ratio,t)    translate 1 0 0            \
  858. end
  859.  
  860. #define RSPfont_b(prefix,t)                        \
  861. prefix list                                \
  862.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  863.     botarc(t)                                \
  864.     cylinder     (t)    1 0 0.5    1 0 (0.5+RSPv0006_gap)            \
  865.     cylsphere(2,t)                            \
  866. end
  867.  
  868. #define RSPfont_c(prefix,t)                        \
  869. prefix list                                \
  870.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  871.     cylinder    (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  872.     botarc(t)                                \
  873.     sphere    (t)    1 0 (0.5+RSPv0006_gap)                \
  874.     sphere    (t)    1 0 0.5                        \
  875. end
  876.  
  877. #define RSPfont_d(prefix,t)                        \
  878. prefix list                                \
  879.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  880.     botarc(t)                                \
  881.     cylinder     (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  882.     cylsphere(2,t)    translate     1 0 0                \
  883. end
  884.  
  885. #define RSPfont_e(prefix,t)                        \
  886. prefix list                                \
  887.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  888.     cylinder    (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  889.     botarc(t)                                \
  890.     sphere    (t)    1 0 (0.5+RSPv0006_gap)                \
  891.     cylinder    (t)    0 0 (0.5+RSPv0006_gap)    1 0 (0.5+RSPv0006_gap)    \
  892.     sphere    (t)    1 0 0.5                        \
  893. end
  894.  
  895. #define RSPfont_f(prefix,t)                        \
  896. prefix list                                \
  897.     sphere     (t)    .5 0 0                        \
  898.     cylinder    (t)    .5 0 0  .5 0 1.5                    \
  899.     upperleftquarter(t)    translate 0.5 0 0                \
  900.     sphere    (t)    1 0 2                        \
  901.     cylinder    (t)    0.2 0 1        0.8 0 1                \
  902.     sphere    (t)    0.2 0 1                        \
  903.     sphere    (t)    0.8 0 1                        \
  904. end
  905.  
  906. #define RSPfont_g(prefix,t)                        \
  907. prefix list                                \
  908.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  909.     botarc(t)                                \
  910.     cylinder     (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  911.     cylinder    (t)    1 0 (2*RSPv0004_ratio)    1 0 (0-RSPv0006_gap)    \
  912.     botarc(t)    translate    0 0 (-0.5-RSPv0006_gap)            \
  913.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  914.     sphere    (t)    0 0 (0-RSPv0006_gap)                \
  915. end
  916.  
  917. #define RSPfont_h(prefix,t)                        \
  918. prefix list                                \
  919.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  920.     cylsphere(2,t)                            \
  921.     cylinder    (t)    1 0 0     1 0 (0.5+RSPv0006_gap)            \
  922.     sphere     (t)    1 0 0                        \
  923. end
  924.  
  925. #define RSPfont_i(prefix,t)                        \
  926. prefix list                                \
  927.     cylsphere(2*RSPv0004_ratio,t)     translate 0.5 0 0            \
  928.     sphere    (t)    0.5 0 (2*RSPv0004_ratio+RSPv0006_gap+(t))    \
  929. end
  930.  
  931. #define RSPfont_j(prefix,t)                        \
  932. prefix list                                \
  933.     cylinder    (t)    1 0 (2*RSPv0004_ratio)    1 0 (0-RSPv0006_gap)    \
  934.     botarc(t)    translate    0 0 (-0.5-RSPv0006_gap)            \
  935.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  936.     sphere    (t)    0 0 (0-RSPv0006_gap)                \
  937.     sphere    (t)    1 0 (2*RSPv0004_ratio+RSPv0006_gap+(t))        \
  938. end
  939.  
  940. #define RSPfont_k(prefix,t)                        \
  941. prefix list                                \
  942.     cylsphere(2,t)                            \
  943.     cylinder    (t)                            \
  944.     0 0 (0.6*RSPv0004_ratio)                    \
  945.     1 0 (2*RSPv0004_ratio)                        \
  946.     cylinder     (t)                            \
  947.     0.4 0 (0.6*RSPv0004_ratio+0.4*1.4*RSPv0004_ratio)        \
  948.     1 0 0                                \
  949.     sphere    (t)    1 0 0                        \
  950.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  951. end
  952.  
  953. #define RSPfont_l(prefix,t)                        \
  954. prefix list                                \
  955.     cylsphere(2,t)    translate 0.5 0 0                    \
  956. end
  957.  
  958. #define RSPfont_m(prefix,t)                        \
  959. prefix list                                \
  960.     intersect                                \
  961.     torus 0.25 (t)  0.25 0 (2*RSPv0004_ratio-0.25)     0 1 0    \
  962.     box -1 -1 (2*RSPv0004_ratio-0.25) 1 1 3                \
  963.     end                                    \
  964.     intersect                                \
  965.     torus 0.25 (t)  0.25 0 (2*RSPv0004_ratio-0.25)     0 1 0    \
  966.     box -1 -1 (2*RSPv0004_ratio-0.25) 1 1 3                \
  967.     end translate 0.5 0 0                        \
  968.     cylsphere(2*RSPv0004_ratio,t)                    \
  969.     cylinder    (t)    0.5 0 0  0.5 0 (2*RSPv0004_ratio-0.25)        \
  970.     cylinder    (t)    1.0 0 0  1.0 0 (2*RSPv0004_ratio-0.25)        \
  971.     sphere    (t)    0.5 0 0                        \
  972.     sphere    (t)    1 0 0                        \
  973. end
  974.  
  975.  
  976. #define RSPfont_n(prefix,t)                        \
  977. prefix list                                \
  978.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  979.     cylsphere(2*RSPv0004_ratio,t)                    \
  980.     cylinder    (t)    1 0 0     1 0 (0.5+RSPv0006_gap)            \
  981.     sphere     (t)    1 0 0                        \
  982. end
  983.  
  984. #define RSPfont_o(prefix,t)                        \
  985. prefix list                                \
  986.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  987.     botarc(t)                                \
  988.     cylinder     (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  989.     cylinder    (t)    1 0 0.5    1 0 (0.5+RSPv0006_gap)            \
  990. end
  991.  
  992. #define RSPfont_p(prefix,t)                        \
  993. prefix list                                \
  994.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  995.     botarc(t)                                \
  996.     cylinder     (t)    1 0 0.5    1 0 (0.5+RSPv0006_gap)            \
  997.     cylinder    (t)                            \
  998.     0 0 (2*RSPv0004_ratio)                        \
  999.     0 0 (0-2*RSPv0006_gap)                        \
  1000.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1001.     sphere    (t)    0 0 (0-2*RSPv0006_gap)                \
  1002. end
  1003.  
  1004. #define RSPfont_q(prefix,t)                        \
  1005. prefix list                                \
  1006.     toparc(t)     translate    0 0 (-2*RSPv0005_Aratio)            \
  1007.     botarc(t)                                \
  1008.     cylinder     (t)    0 0 0.5    0 0 (0.5+RSPv0006_gap)            \
  1009.     cylinder    (t)                            \
  1010.     1 0 (2*RSPv0004_ratio)                        \
  1011.     1 0 (0-2*RSPv0006_gap)                        \
  1012.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1013.     sphere    (t)    1 0 (0-2*RSPv0006_gap)                \
  1014. end
  1015.  
  1016. #define RSPfont_r(prefix,t)                        \
  1017. prefix list                                \
  1018.     toparc(t)     translate 0 0 (-2*RSPv0005_Aratio)            \
  1019.     cylsphere(2*RSPv0004_ratio,t)                    \
  1020.     sphere    (t)    1 0 (0.5+RSPv0006_gap)                \
  1021. end
  1022.  
  1023. #define RSPfont_s(prefix,t)                        \
  1024. prefix list                                \
  1025.   intersect                                \
  1026.     torus (RSPv0004_ratio/2) (t)                    \
  1027.     (RSPv0004_ratio/2) 0 (1.5*RSPv0004_ratio)            \
  1028.     0 1 0                                \
  1029.     box -1 -1 (RSPv0004_ratio-(t)) (RSPv0004_ratio/2) 1 3        \
  1030.   end                                    \
  1031.   intersect                                \
  1032.     torus (RSPv0004_ratio/2) (t)                    \
  1033.     (1-RSPv0004_ratio/2) 0 (1.5*RSPv0004_ratio)            \
  1034.     0 1 0                                \
  1035.     box (1-RSPv0004_ratio/2) -1 (1.5*RSPv0004_ratio) 2 1 3        \
  1036.   end                                    \
  1037.   intersect                                \
  1038.     torus (RSPv0004_ratio/2) (t)                    \
  1039.     (RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  1040.     0 1 0                                \
  1041.     box -1 -1 (.5*RSPv0004_ratio) (RSPv0004_ratio/2) 1 -1        \
  1042.   end                                    \
  1043.   intersect                                \
  1044.     torus (RSPv0004_ratio/2) (t)                    \
  1045.     (1-RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  1046.     0 1 0                                \
  1047.     box (1-RSPv0004_ratio/2) -1 (RSPv0004_ratio+(t)) 2 1 -1        \
  1048.   end                                    \
  1049.   cylinder    (t)                            \
  1050.     (RSPv0004_ratio/2) 0 0                        \
  1051.     (1-RSPv0004_ratio/2) 0 0                        \
  1052.   cylinder    (t)                            \
  1053.     (RSPv0004_ratio/2) 0 (RSPv0004_ratio)                \
  1054.     (1-RSPv0004_ratio/2) 0 (RSPv0004_ratio)                \
  1055.   cylinder    (t)                            \
  1056.     (RSPv0004_ratio/2) 0 (2*RSPv0004_ratio)                \
  1057.     (1-RSPv0004_ratio/2) 0 (2*RSPv0004_ratio)                \
  1058.   sphere    (t)    0 0 (RSPv0004_ratio/2)                \
  1059.   sphere    (t)    1 0 (1.5*RSPv0004_ratio)                \
  1060. end
  1061.  
  1062. #define RSPfont_t(prefix,t)                        \
  1063. prefix list                                \
  1064.     cylsphere(2,t)    translate     0.5 0 0                \
  1065.     cylinder    (t)                            \
  1066.     0.2 0 (2*RSPv0004_ratio)                    \
  1067.     0.8 0 (2*RSPv0004_ratio)                    \
  1068.     sphere    (t)    0.2 0 (2*RSPv0004_ratio)                \
  1069.     sphere    (t)    0.8 0 (2*RSPv0004_ratio)                \
  1070. end
  1071.  
  1072. #define RSPfont_u(prefix,t)                        \
  1073. prefix list                                \
  1074.     botarc(t)                                \
  1075.     cylinder     (t)    0 0 0.5    0 0 (2*RSPv0004_ratio)            \
  1076.     cylsphere(2*RSPv0004_ratio,t)    translate 1 0 0            \
  1077.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1078. end
  1079.  
  1080. #define RSPfont_u_new(prefix,t)                        \
  1081. prefix list                                \
  1082.     intersect                                \
  1083.     torus (RSPv0004_ratio/2) (t)                    \
  1084.         (RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  1085.         0 1 0                            \
  1086.     box -1 -1 (.5*RSPv0004_ratio) (RSPv0004_ratio/2) 1 -1        \
  1087.     end                                    \
  1088.     intersect                                \
  1089.     torus (RSPv0004_ratio/2) (t)                    \
  1090.         (1-RSPv0004_ratio/2) 0 (.5*RSPv0004_ratio)            \
  1091.         0 1 0                            \
  1092.     box (1-RSPv0004_ratio/2) -1 (.5*RSPv0004_ratio) 2 1 -1        \
  1093.     end                                    \
  1094.     cylinder    (t)                            \
  1095.     (RSPv0004_ratio/2) 0 0                        \
  1096.     (1-RSPv0004_ratio/2) 0 0                    \
  1097.     cylinder     (t)                            \
  1098.     0 0 (RSPv0004_ratio/2)                        \
  1099.     0 0 (2*RSPv0004_ratio)                        \
  1100.     cylsphere(2*RSPv0004_ratio,t)    translate 1 0 0            \
  1101.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1102. end
  1103.  
  1104. #define RSPfont_v(prefix,t)                        \
  1105. prefix list                                \
  1106.     cylinder    (t)    0 0 (2*RSPv0004_ratio)    0.5 0 0        \
  1107.     cylinder    (t)    1 0 (2*RSPv0004_ratio)    0.5 0 0        \
  1108.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1109.     sphere     (t)    0 0 (2*RSPv0004_ratio)                \
  1110.     sphere    (t)    0.5 0 0                        \
  1111. end
  1112.  
  1113. #define RSPfont_w(prefix,t)                        \
  1114. prefix list                                \
  1115.     cylinder    (t)    0 0 (2*RSPv0004_ratio)    0.15 0 0        \
  1116.     cylinder    (t)    1 0 (2*RSPv0004_ratio)    0.85 0 0        \
  1117.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1118.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1119.     sphere     (t)    0.15 0 0                    \
  1120.     sphere    (t)    0.85 0 0                        \
  1121.     cylinder    (t)    0.15 0 0    0.5 0 RSPv0004_ratio            \
  1122.     cylinder    (t)    0.85 0 0    0.5 0 RSPv0004_ratio            \
  1123.     sphere    (t)    0.5 0 RSPv0004_ratio                \
  1124. end
  1125.  
  1126. #define RSPfont_w2(prefix,t)                        \
  1127. prefix list                                \
  1128.     sphere    (t) 0 0 (2*RSPv0004_ratio)                \
  1129.     cylinder    (t) 0 0 (2*RSPv0004_ratio)    0.25 0 0            \
  1130.     sphere    (t) 0.25 0 0                        \
  1131.     cylinder    (t) 0.5 0 (2*RSPv0004_ratio)    0.25 0 0        \
  1132.     sphere    (t) 0.5 0 (2*RSPv0004_ratio)                \
  1133.     cylinder    (t) 0.5 0 (2*RSPv0004_ratio)    0.75 0 0        \
  1134.     sphere    (t) 0.75 0 0                        \
  1135.     cylinder    (t) 1 0 (2*RSPv0004_ratio)    0.75 0 0            \
  1136.     sphere    (t) 1 0 (2*RSPv0004_ratio)                \
  1137. end
  1138.  
  1139. #define RSPfont_x(prefix,t)                        \
  1140. prefix list                                \
  1141.     cylinder    (t)    0 0 (2*RSPv0004_ratio)     1 0 0            \
  1142.     cylinder    (t)    0 0 0     1 0 (2*RSPv0004_ratio)            \
  1143.     sphere    (t)    0 0 0                        \
  1144.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1145.     sphere    (t)    1 0 0                        \
  1146.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1147. end
  1148.  
  1149. #define RSPfont_y(prefix,t)                        \
  1150. prefix list                                \
  1151.     botarc(t)                                \
  1152.     cylinder     (t)    0 0 0.5    0 0 (2*RSPv0004_ratio)            \
  1153.     cylinder    (t)                            \
  1154.     1 0 (2*RSPv0004_ratio)                        \
  1155.     1 0 (0-RSPv0006_gap)                        \
  1156.     botarc(t)    translate    0 0 (-0.5-RSPv0006_gap)            \
  1157.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1158.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1159.     sphere    (t)    0 0 (0-RSPv0006_gap)                \
  1160. end
  1161.  
  1162. #define RSPfont_z(prefix,t)                        \
  1163. prefix list                                \
  1164.     cylinder    (t)                            \
  1165.     0 0 (2*RSPv0004_ratio)                        \
  1166.     1 0 (2*RSPv0004_ratio)                        \
  1167.     cylinder    (t)    1 0 (2*RSPv0004_ratio)    0 0 0            \
  1168.     cylinder    (t)    0 0 0     1 0 0                    \
  1169.     sphere    (t)    0 0 (2*RSPv0004_ratio)                \
  1170.     sphere    (t)    1 0 (2*RSPv0004_ratio)                \
  1171.     sphere    (t)    0 0 0                        \
  1172.     sphere    (t)    1 0 0                        \
  1173. end
  1174.  
  1175. #define RSPfont_left_brace(prefix,t)                    \
  1176. prefix list                                \
  1177.     upperleftquarter(t) translate 0.5 0 0                \
  1178.     lowerquarter(t)    translate -0.5 0 1                \
  1179.     upperquarter(t)    translate -0.5 0 -1                \
  1180.     lowerleftquarter(t)    translate 0.5 0 0                \
  1181.     sphere    (t)    0 0 1                        \
  1182.     sphere    (t)    1 0 2                        \
  1183.     sphere    (t)    1 0 0                        \
  1184. end
  1185.  
  1186. #define RSPfont_pipe(prefix,t)                        \
  1187. prefix list                                \
  1188.     cylsphere(0.75,t)    translate 0.5 0 0                \
  1189.     cylsphere(0.75,t)    translate 0.5 0 1.25                \
  1190. end
  1191.  
  1192. #define RSPfont_right_brace(prefix,t)                    \
  1193. prefix list                                \
  1194.     upperquarter(t)    translate -0.5 0 0                \
  1195.     lowerleftquarter(t)    translate 0.5 0 1                \
  1196.     upperleftquarter(t)    translate 0.5 0 -1                \
  1197.     lowerquarter(t)    translate -0.5 0 0                \
  1198.     sphere    (t)    0 0 2                        \
  1199.     sphere    (t)    1 0 1                        \
  1200.     sphere    (t)    0 0 0                        \
  1201. end
  1202.  
  1203. #define RSPfont_tilde(prefix,t)                        \
  1204. prefix list                                \
  1205.     intersect                                \
  1206.     torus 0.25 (t)  0.25 0 1.75     0 1 0                \
  1207.     box     -1 -1 1.75     1 1 3                    \
  1208.     end                                    \
  1209.     intersect                                \
  1210.     torus 0.25 (t)  0.75 0 1.75     0 1 0                \
  1211.     box     -1 -1 0     2 1 1.75                \
  1212.     end                                    \
  1213.     sphere    (t)    0 0 1.75                        \
  1214.     sphere    (t)    1 0 1.75                        \
  1215. end
  1216.  
  1217. #define RSPfont_angstrom(prefix,t)                    \
  1218. prefix list                                \
  1219.     cylinder    (t)    0 0 0    0.5 0 2                    \
  1220.     cylinder    (t)    1 0 0    0.5 0 2                    \
  1221.     cylinder    (t)    (0.5-0.5*0.5) 0 0.7    (0.5+0.5*0.5) 0 0.7    \
  1222.     sphere    (t)    0 0 0                        \
  1223.     sphere    (t)    1 0 0                        \
  1224.     torus    0.25    ((t)/2)    0.5 0 2.2     0 1 0            \
  1225. end
  1226.  
  1227. #define RSPfont_angstrom_dan(prefix,t)                    \
  1228. prefix list                                \
  1229.     cylinder    (t)    0 0 0    0.5 0 2                    \
  1230.     cylinder    (t)    1 0 0    0.5 0 2                    \
  1231.     cylinder    (t)    (0.5-0.5*0.5) 0 0.7    (0.5+0.5*0.5) 0 0.7    \
  1232.     sphere    (t)    0.5 0 2                        \
  1233.     sphere    (t)    0 0 0                        \
  1234.     sphere    (t)    1 0 0                        \
  1235.     torus    0.25    ((t)/ 2)    0.5 0 2.7     0 1 0            \
  1236. end
  1237.  
  1238. #endif             /* ifndef RSHF_FONT */
  1239.